import Vue from 'vue'
import Router from 'vue-router'

Vue.use(Router)

// 引入登录组件(使用路由懒加载的方式引入组件)
const Login=()=>import("../components/Login.vue");
const Home=()=>import("../components/Home.vue");
// 引入欢迎组件
const Hello=()=>import("../pages/Hello.vue");
// 引入用户组件
const Users=()=>import("../pages/Users.vue");
// 引入权限组件
const Rights=()=>import("../pages/Rights.vue");
// 引入角色组件
const Roles=()=>import("../pages/Roles.vue");
// 引入商品分类组件
const GoodsType=()=>import("../pages/Goods_type.vue");
// 引入分类参数管理
const TypeParams=()=>import("../pages/Type_params.vue");
// 引入商品列表
const Goods=()=>import("../pages/Goods.vue");
// 引入添加商品组件
const GoodsAdd=()=>import("../pages/Goods_add.vue");
// 引入订单页面
const Orders=()=>import("../pages/Orders.vue");
// 引入报表页面
const Reports=()=>import("../pages/Reports.vue");

// 定义路由映射
const routes=[
  {path:"/",redirect:"/login"},
  {path:"/login",component:Login},
  {path:"/home",component:Home,
  children:[
    {path:"/",redirect:"/home/hello"},
    {path:"hello",component:Hello},
    {path:"users",component:Users},
    {path:"rights",component:Rights},
    {path:"roles",component:Roles},
    {path:"categories",component:GoodsType},
    {path:"params",component:TypeParams},
    {path:"goods",component:Goods},
    {path:"addgoods",component:GoodsAdd},
    {path:"orders",component:Orders},
    {path:"reports",component:Reports}
  ]}
];
const router=new Router({
  mode:"history",
  routes
})
// 为路由对象，添加 beforeEach 导航守卫,注意一定要在router被创建之后编写导航守卫
router.beforeEach((to, from, next) => {
  // 定义需要放行的路由,例如登录,注册,登出
  if (to.path === '/login')
  {
    return next();
  }
  // 从 sessionStorage 中获取到保存的 token 值
  const tokenStr = window.sessionStorage.getItem('token')
  // 没有token，强制跳转到登录页
  if (!tokenStr) {
    return next('/login'); //跳转到登录路由
  }
  //若以上判断均通过则放行此次路由跳转
  next();
})
// 导出router对象
export default router;
